import axios from 'axios'

// 请求超时时间
axios.defaults.timeout = 1000 * 60

// post请求头
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';

const token = "Admin Token"

// 请求拦截器
axios.interceptors.request.use(
	(config) => {
		// 验证权限
		if (token) {
			config.headers.Authorization = 'Bearer ' + token;
		}
		// 在此加载-loading
		return config
	},
	error => Promise.error(error)
)

// 响应拦截器
axios.interceptors.response.use(
	(response) => {
		if (response.status !== 200) {
		    return Promise.reject(response);
		} else {
		    const res = response.data;
		    if (res.code !== 200) {
		        return Promise.reject(response);
		    }
		    return response.data;
		}
	},
	// 服务器状态码不是200的情况
	(error) => {
		const {
			status
		} = error
		// 在此关闭-loading
		return Promise.reject(error)
	}
)

/**
 * 请求方法封装
 * @param {string} url - 请求地址
 * @param {object} params - 请求参数
 * @return {object} res - 查找结果
 */

// get方法
export function get(url, params) {
	return new Promise((resolve, reject) => {
		axios.get(url, {
			params
		}).then((res) => {
			resolve(res.data)
		}).catch((err = {}) => {
			reject(err)
		})
	})
}

// post方法
export function post(url, data) {
	return new Promise((resolve, reject) => {
		axios.post(url, data).then((res) => {
			resolve(res.data)
		}).catch((err = {}) => {
			reject(err)
		})
	})
}
